export default {
  name: "string",
  methods: {
    prefixUpperCase(s, i, l) {
      if (s instanceof String) {
        return s.substring(i, l).toUpperCase() + s.substring(l);
      } else {
        return "";
      }
    },
    prefixLowerCase(s, i, l) {
      if (s instanceof String) {
        return s.substring(i, l).toLowerCase() + s.substring(l);
      } else {
        return "";
      }
    },
    toString(v) {
      if (!v) {
        return "";
      }
      if (v instanceof Object) {
        return keys(v)
          .map(k => toString(v[k]))
          .join(" ");
      }
      return String(v);
    },
    recToString(obj) {
      if (!(obj instanceof Object)) {
        return "";
      }
      return toString(
        keys(obj).reduce((o, k) => {
          // Ignore fields that start with _
          if (!/^_/.test(k)) {
            o[k] = obj[k];
          }
          return o;
        }, {})
      );
    }
  }
};
